package net.towee.model.account;

import java.util.List;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * This class contains account contacts and favorites.
 * @author c58
 */
public interface ContactsContainer extends IsSerializable {	
	/**
	 * @return List of group contacts
	 */
	List<ContactsGroup> getContactsGroupsList();
	
	/**
	 * Add new contacts group
	 * @param group
	 */
	void addContactsGroup(ContactsGroup group);
	
	/**
	 * Remove group with some index
	 * @param id
	 */
	void removeContactsGroup(String id);
	
	/**
	 * Remove group by object
	 * @param group
	 */
	void removeContactsGroup(ContactsGroup group);

	/**
	 * @return list of all known contacts of all groups
	 */
	List<AccountIdentity> getAllContacts();

	/**
	 * Return contacts group with given ID
	 * @param id
	 * @return 
	 */
	ContactsGroup getContactsGroup(String id);
}